package com.neuedu.corejava.ch4;
public class Array1 {
	static String  arr[]=new String[0];
	public static void main(String[] args) {
		
		
		//数组：是一种数据结构，用于保存类型相同的一组数据；可以是基本数据类型 或 引用数据类型
				//设计一个数据结构，用于保存全班同学oracle课程的成绩
				//数组的定义---数组的定义使用： 数据类型 中括号  和变量名进行定义
				// 两种结构：   数据类型[]  变量名 ;       和           数据类型  变量名[]; 
				
				//数组需要初始化后，才能用于存放数据
				//数组的初始化有多种方式：
				//1).在定义的时候初始化,数组在初始化时需要指定数组的长度
				double[] scores = new double[50];
				scores[0] = 98;//保存数据到数组中
				scores[1] = 97;
				scores[2] = 96;
				scores[3] = 95;
				double score = scores[0];//从数组中获取数据
				
				//设计一个数据结构，用于保存全部同学的姓名
				String  students[];
				//2).在定义后初始化,数组在初始化时需要指定数组的长度
				students = new String[50];
				
				//3).在定义时初始化数组，不指定数组长度而是直接填充数据到数组元素中
				double[] scores2 = new double[] {98,97,96,94,94,94,98};
				double[] scores3 = {98,97,96,94,94,94,98};
				//double[] scores4 = new double[10] {98,97,96,94,94,94,98}; //错误 不能指定长度
				//double[10] scores4 = new double[] {98,97,96,94,94,94,98};错误，不能在赋值符号左边指定长度

				
				//数组元素的默认值：
				//1.整型数组元素的默认值是0 
				//2.浮点型数组元素的默认值是0.0f或0.0
				//3.char类型 数组元素的默认是 \u0000
				//4.布尔值类型的数组元素的默认值是 false
				//5.其它引用数据类型的默认值都是null

				//new关键字
				//在java语言中，可以使用new关键词实例化对象，在实例化过程中会进行内存空间的申请，申请后由jvm进行内存分配
				//对象申请内存后，才能保存数据
				//没有实例化的数组不能进行数组元素的访问，否则会抛出空指针异常
				
				arr[0]="java核心技术";
				
				
				
				//数组元素的访问
				//数组的遍历
				//for循环
				//数组是一个对象，包含有一个length属性，可以用于获取数组长度
				//数组的下标是从0 开始
				for(int i=0;i<scores3.length;i++){
					System.out.print(scores3[i]+"\t");
				}
				System.out.println();
				//while循环
				int index=0;
				while(index<scores3.length){
					System.out.print(scores3[index++]+"\t");
				}
				System.out.println();
				
				//for each:可以遍历数组或集合
				for(double d:scores3){
					System.out.print(d+"\t");
				}
				
				
				//数组下标越界异常
				//double d=scores3[scores3.length]; 错误，下标越界
				double d=scores3[scores3.length-1];
				
				
		
	}
}
